package com.binguo.thirdPay.dashiPay;

import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 
 * 		类说明：达实与视觉结算系统对接
 *
 */
@Service
public class DaShiPay {
	
	@Autowired
	private DSSendRequest dSSendRequest = new DSSendRequest();
	
	
	/**
	 * 		1.	人脸注册
	 * @return			返回结果如下：
	 * 						Result	结果（success：成功error:失败）
	 *						ErrorCode	失败原因 （如：身份认证未通过、未连通数据库）
	 *						FaceCount	已注册人脸个数
	 */
	public String dsFaceRegistered() {
		System.out.println("初始化达实");
		String token = DigestUtils.md5Hex(DSServerConfig.OPTYPE_FACE+DSServerConfig.DASHI_STRING);
		return dSSendRequest.sendPost(DSServerConfig.SERVER_IP, "{\"opType\":\""+DSServerConfig.OPTYPE_FACE+"\",\"token\":\""+token+"\"}");
	}
	
	
	
	
	
	/**
	 * 		2.	刷脸消费
	 * @param orderNo			订单号具有唯一性
	 * @param identifyData		图片Base64数据
	 * @param xfMoney			消费金额两位小数
	 * @return			 返回信息如下：
	 * 						Result	数据验证结果（success：成功error:失败）
	 *						ErrorCode	失败原因 （如：身份认证未通过、未连通数据库）
	 *						XFResult	消费结果
	 *						XFCode	消费代码，详细请看消费代码表
	 *						EmpNo	人员编号
	 *						EmpName	人员姓名
	 *						DptName	部门名称
	 */
	public String dsFaceSwiging(String orderNo, String identifyData, String xfMoney) {
		String token = DigestUtils.md5Hex(orderNo+DSServerConfig.OPTYPE_FACE_SWIPING+identifyData+xfMoney+DSServerConfig.DASHI_STRING);
		String param = "{\"opType\":\""+DSServerConfig.OPTYPE_FACE_SWIPING+"\",\"body\":{\"orderNo\":\""+orderNo+"\",\"identifyData\":\""+identifyData
				+"\",\"xfmoney\":\""+xfMoney+"\"},\"token\":\""+token+"\"}";
		return dSSendRequest.sendPost(DSServerConfig.SERVER_IP, param);
	}
	
	
	
	
	
	/**
	 * 		3.	刷卡消费
	 * @param orderNo			订单号具有唯一性
	 * @param identifyData		卡流水号
	 * @param xfMoney			消费金额两位小数
	 * @return		返回信息如下：
	 * 					Result	数据验证结果（success：成功error:失败）
	 *					ErrorCode	失败原因 （如：身份认证未通过、未连通数据库）
	 *					XFResult	消费结果
	 *					XFCode	消费代码，详细请看消费代码表
	 *					EmpNo	人员编号
	 *					EmpName	人员姓名
	 *					DptName	部门名称
	 *					XFMoney	消费金额
	 *					CardMoney	余额
	 */
	public String dsCardPay(String orderNo, String identifyData, String  xfMoney) {
		String token = DigestUtils.md5Hex(orderNo+DSServerConfig.OPTYPE_CARD+identifyData+xfMoney+DSServerConfig.DASHI_STRING);
		String param = "{\"opType\":\""+DSServerConfig.OPTYPE_CARD+"\",\"body\":{\"orderNo\":\""+orderNo+"\",\"identifyData\":\""+identifyData
				+"\",\"xfmoney\":\""+xfMoney+"\"},\"token\":\""+token+"\"}";
		return dSSendRequest.sendPost(DSServerConfig.SERVER_IP, param);
	}
}